The LDPC coding scheme was proposed by Gallager in 1962. The LDPC code refers to a linear code which has a test matrix, the elements of which are largely “0.” In a classical coding theory, a test matrix was determined to design a code. A similar definition can also be made for the LDPC coding scheme which originates from a turbo principle which is said to introduce a new era of coding theory. The present invention, however, employs a definition which is made based on a Tanner graph which more grasps the essence.
The Tanner graph is a two-part graph in which a code is represented by two types of nodes called a variable node and a check node, where a branch connected to each node is called an “edge,” and the number of branches connected to each node is called the “order of the node.” The total number of branches is equal to the number of “1's” which are set in a test matrix. The number of “1's” in the column direction of the test matrix is called a “column weight,” and the number of “1's” in the row direction is called a “row weight.” In the LDPC coding scheme, this test matrix is not unique. Decoding of the LDPC coding scheme depends on the test matrix, and is performed by calculating a probability propagation by a method called “iterative decoding.”
In recent years, a method which has further developed the LDPC code having powerful error correcting capabilities which are said to come closer to the Shannon limit, involves finding an order distribution using DE (abbreviation of Density Evolution) which is an approach for calculating, for each of the repetitions, a change in the probability density function of LLR for an ensemble of the same code as LDPC which has a certain order distribution by a method based on a randomly configured code and repeated probabilistic decoding, and expanding this approach for a singular LDPC code to search an excellent order distribution in a probability propagation calculation performed for a log-likelihood ratio (LLR) subjected to propagation based on a local structure of the code possessed by the graph in a probability propagation calculation between respective nodes on a Tanner graph. In this regard, a code determined by a regular graph which is equal in the order of nodes is called a “regular LDPC code,” while one which is not equal in the order is called a “code same as singular LDPC.”
The probability propagation calculation on the Tanner graph is typically a message transmission type algorithm called “sum-product,” however, if one attempts to faithfully execute this, an increase in circuit scale will arise. Therefore, a daring approximation is made in a Min (Max) Log region. In this regard, an approximation in the MaxLog region is also called “minSum algorithm” in the LDPC coding.
As described above, it is necessary to use a singular LDPC code which accords with the order distribution based on DE in order to accomplish powerful error correcting capabilities close to the Shannon limit. However, DE originally shows a iterative decoding characteristic limit for the case where the code length is virtually infinite, and actually requires memories for storing an immense code length of approximately at least 106-107 bits, by way of example, and also requires a high maximum order of approximately 100-200 for a weighting distribution. Here, a higher order means that the circuit size is correspondingly larger.
In recent years, studies have aggressively progressed in the field of communications, such as mobile communications, and higher performance, higher speed, and higher efficiency have been strongly required for an encoder and a decoder of an error correcting code. However, there is a problem that even if high performance close to the Shannon limit can be accomplished, this is not realistic for mobile bodies.
Recently, to cope with the problem, an attempt has been made to reduce a high weighting distribution of the singular LDPC code, where a method is employed for classifying nodes into categories to account for an error floor which is likely to occur at a low weighting distribution. In this regard, these categories also include a category which has a node of weight “1,” and a category which punctures a variable node.
Also, a daring approximation in the Min (Max) Log region is employed instead of sum-product for a feasible circuit scale, but a problem arises in that the approximation gives rise to a non-negligible degradation in characteristics.
Further, even if an opposing encoder employs a sparse test matrix by using a low weighting distribution for its generation matrix, it is however almost certain that this is not a sparse matrix. Being sparse means having a low complexity. Accordingly, a calculation method for generating a code while making use of a sparse test matrix is disclosed in “Efficient encoding of low-density parity-check codes,” IEEE Transactions on information theory, Volume 47, Issue 2, pp. 638-656.
Patent Document 1 (JP-2005-65271A) discloses an algorithm called “Max-Log-MAP” which is used in decoding in a turbo coding scheme. The LDPC coding scheme is a scheme different from the turbo coding scheme, and completely differs in its coding structure. Nevertheless, they are similar in that iterative decoding is performed.
In regard to weighting in the MaxLog approximation in the iterative decoding processing, it seems that in Patent Document 1 two types of weighting (Wc, Wa) are performed, but one of the two types of weighting (Wc) is performed only for an information series (c(xt,0)) in a received signal, and this information series (c(xt,0)) takes the same value during iterative decoding processing. In other words, this is not relevant to LLR which is subjected to probability propagation in iterative decoding processing. Essentially, weighting for a received signal should be determined in consideration of not only an information series and a parity series but also signal point mapping in modulation/demodulation, and should be thought separately from LLR which is subjected to the probability propagation in iterative decoding processing. Summarized in this way, it is understood that LLR subjected to probability propagation in this example is one of the extrinsic log-likelihood ratios (extrinxic LLR, hereinafter abbreviated as “extrinsic LLR”). Weighting processing performed on this extrinsic LLR in Max-Log-MAP in the turbo code is already a known fact, and Patent Document 2 (Japanese Patent No. 3246484), for example, discloses in FIG. 1 an example in which a weighting of 0.75 times is performed on extrinsic LLR through a shift sum and is realized with a low complexity.
Patent Document 1 discloses in FIG. 5 an example in which weighting processing is performed for extrinsic LLR for each half iteration.
In other words, the iterative decoding of the turbo coding scheme, including the technology disclosed in Patent Document 1, is basically controlled for a single probability propagation subject called the extrinsic log-likelihood ratio (extrinxic LLR).
Patent Document 3 (JP-2004-266463A) in turn discloses a generating method which performs a density evolution method (Density Evolution) which is a method for analysis in the LDPC coding scheme through a Gaussian approximation method (Gaussian Approximation; hereinafter abbreviated as “GA”) which is also a method, and uses a Latin square.
Specifically, a method used in Patent Document 3 is an approach which can perform a trace analysis for a probability distribution only with a mean value, and ends up to simultaneously tracing the variance in probability propagation processing which preserves the relation called “Symmetry condition.”    Non-Patent Document 1: “Efficient encoding of low-density parity-check codes,” IEEE Transactions on information theory, Volume 47, Issue 2, pp. 638-656    Patent Document 1: JP-2005-65271A    Patent Document 2: Japanese Patent No. 3246484    Patent Document 3: JP-2004-266463A